1. Field of the Invention
The present invention relates to computer implemented authorization for access to remote data. More particularly, it relates to authentication of computer users for access to data managed by remote data repositories. Still more particularly, it relates to middle tier server management of multiple client access authorization to multiple remote data repositories.
2. Background and Related Art
Internet technology has enabled computer users to access increasing amounts of data for business and personal purposes. The "Internet" consists of computers linked to each other via a computer network using common communication protocols. Most networks implement the TCP/IP (transmission control protocol/internet protocol) as a means for communication between computers. The computers are designated as "client" computers or "server" computers. Client computers make requests for data from server computers according to one of a number of available client/server protocols. Internet users currently favor the Hypertext Transfer Protocol (HTTP) because of its ease of use. HTTP enables users to select data based on a text or graphical icon or image on their client system that represents a link to particular remote data. This interlinking of data through hypertext links creates a "web" of links that can be navigated by the user to access the data he or she desires.
The basic network structure includes a network server and one or more network clients. The network server contains software that enables it to respond to requests for data from the client machines. Server software includes the Internet Connection Server Software (ICS) from IBM Corp., the Lotus Domino Server from Lotus Development Corp., the Netscape SuiteSpot Server from Netscape Communications Corp., and the Internet Server Software from Microsoft Corporation. The above server software packages accept a request for information from the client system, locate the requested data and format and present the data back to that client. The data to be returned is typically contained on the server computer system or on a computer linked directly to that system.
Client computer systems employ a "browser" comprising software necessary for the client system to format a request, transmit the request to the appropriate server and then to receive and format the response to the user. A number of commercial browsers are in use, including Netscape Navigator and Netscape Communicator from Netscape Communications, and the Internet Explorer from Microsoft Corp. The use of standardized client/server protocols enables any browser conforming to the client protocols to communicate with any server having the reciprocal server protocol. This flexibility enables independent implementation of client and server technologies.
Communications between the client and server take place over communication links such as telephone lines and computer to computer telecommunication links that are not inherently secure. Users of networked computer systems have recognized the need for secure communications between the client and server systems as essential for applications such as on-line banking, electronic ordering of products, and transmission of credit card or other financial transactions. Two secure network protocols account for a majority of secure transactions over the Internet.
The Secure Sockets Layer (SSL) protocol was developed by Netscape Communications Corp. and initially incorporated in its browser and server products. The SSL protocol is described in SSL Version 3.0, Internet-Draft, published by Netscape Communications Corp. in December 1995. This protocol is also frequently referenced as the "HTTPS" protocol. The protocol specifies the interaction protocol and content between a client system and the server system in order to establish a "secure" link between the client and server. The secure link is implemented using encryption technology that encrypts the data flowing over the communications medium.
The Secure Hypertext Transfer Protocol (SHTTP) is the second popular security protocol. It is described in The Secure HyperText Transfer Protocol--Version 1.1, Internet-Draft 35, Enterprise Integration Technologies, December 1994. This protocol is built upon the basic HTTP protocol and provides extensions supporting secure communications between the client browser and server systems.
A particular server will typically implement both the SSL and SHTTP protocols and possibly others. This is necessary because of the internet architecture requiring a server to respond appropriately to a large number of client browsers with unspecified client software. Servers with limited protocol support have limited usefulness.
Web servers, such as those described above, access local and remote data. Companies have found that web servers and the internet (termed the "intranet" when use is limited to a specific company or firm) provide an effective means for disseminating corporate data. This data is contained in corporate databases and often is managed by older legacy information systems. Enabling web access permits access to legacy data using modern graphical user interfaces and network tools without requiring the legacy system to be rewritten. The resulting connection of client browser, server and data systems is termed the "three tier system model." The tiers include the client, a "middle tier server" such as the web server, and "back-end" data and file system servers. The three tier model is illustrated in FIG. 1 generally at 100.
The three tiered architecture 100 includes clients 102, 104, 106, middle tier server 108 and back-end data repositories 110, 112, and 114. The back-end data repositories include, but are not limited to: distributed file systems such as AFS, DFS, NFS; database servers such as IBM DB2, Microsoft SQLServer, Oracle or Informix database servers; Lotus Notes or Novel Groupwise groupware servers; or transaction management systems such as IBM CICS, IMS, or Transarc Encina systems. These back-end data sources are connected to the middle tier server through a local or wide area network and are collectively called remote data repositories. The term remote data repository includes data servers directly linked to the middle tier server through a switch or other interconnection device. Remote does not necessarily mean the data repository is geographically distant from the middle tier server.
The client-server tiers are linked by networks 120,122 that can include any combination of public or private data networks. The server-back-end tiers are connected by networks 130 that can also include combinations of public or private data networks or direct communication links between the computers.
Security between the client and server systems is managed using the SSL or SHTTP protocols discussed above. Most of the remote data repositories will, however, have their own security and authentication requirements. Each of the back-end systems may have a unique authentication scheme. Access to a particular data repository is dependent upon client access level. In most cases, an installation will not wish to allow a server to have unrestricted access to all remote data sources without individual client authentication.
A technical problem therefore exists in providing authorization control between a server and remote data repositories in a three tier client/server architecture.
Existing solutions to this problem require each user at a client workstation to authenticate with the remote data repository he or she seeks to access. The server software will recognize when authorization is required and will request authorization credentials from the client user. The client will enter the credentials and these will be passed through the server to the remote data repository for validation. If validated, the data requested will be provided.
One problem with this approach is the stateless query-response nature of client-server access. The remote data repository does not maintain a specified link with each client. Once requested data has been provided, the data repository "forgets" about the client. Thus, a subsequent access by the same client will require repeated authentication/validation. Existing systems attempt to solve this problem by having the client system retain the security credentials, for example, in local client cache, which can then be supplied to the server and data repository upon demand transparently to the user. This has the disadvantage of increasing network traffic between the server and client as each authentication demand must be passed by the server to the client and answered from the local client data. Since each transaction requires reauthorization this can be a significant performance penalty. This penalty is made even more evident to the user because client systems are often connected to the network through relatively slow modems.
Thus, the technical problem remains of providing authentication control between a server and remote data repository while limiting the message traffic between the server and the client. A further problem is to provide such a system that is able to support multiple client-server security protocols and multiple (and different) remote data repository authentication protocols.